package com.aspose.cells;

class zasp {
   static String[] a(String var0) {
      String[] var1 = new String[3];
      byte var2 = 1;
      int var3 = 0;

      for(int var4 = 0; var4 < var0.length(); ++var4) {
         if (var0.charAt(var4) == '&' && var4 + 1 < var0.length()) {
            byte var5;
            switch(var0.charAt(var4 + 1)) {
            case 'C':
            case 'c':
               var5 = 1;
               break;
            case 'L':
            case 'l':
               var5 = 0;
               break;
            case 'R':
            case 'r':
               var5 = 2;
               break;
            default:
               continue;
            }

            if (var4 - var3 > 0) {
               var1[var2] = var0.substring(var3, var3 + (var4 - var3));
            }

            var2 = var5;
            var3 = var4 + 2;
         }
      }

      if (var3 < var0.length()) {
         var1[var2] = var0.substring(var3);
      }

      return var1;
   }

   public static String a(Color var0) {
      StringBuilder var1 = new StringBuilder(8);
      var1.append('#');
      var1.append(com.aspose.cells.a.c.zp.c(var0.getR() & 255));
      var1.append(com.aspose.cells.a.c.zp.c(var0.getG() & 255));
      var1.append(com.aspose.cells.a.c.zp.c(var0.getB() & 255));
      return com.aspose.cells.b.a.zr.a(var1);
   }

   public static String a(Cell var0) {
      zavy var1 = new zavy(var0.d.r());
      return var1.a(var0);
   }

   public static String[] a(FormatCondition var0) {
      var0.f();
      zavy var1 = new zavy(var0.a.a.b.c());
      int var2 = var0.a.getRangeCount();
      if (var2 == 0) {
         return null;
      } else {
         int[] var5 = var0.a.e();
         int var3 = var5[0];
         int var4 = var5[1];
         String[] var6 = new String[2];
         byte[] var7;
         if (var0.a() != null) {
            var7 = (byte[])var0.a();
            var6[0] = var1.a(-1, var7, var3, var4, true);
         }

         if (var0.c() != null && (var0.getOperator() == 0 || var0.getOperator() == 7)) {
            var7 = (byte[])var0.c();
            var6[1] = var1.a(-1, var7, var3, var4, true);
         }

         return var6;
      }
   }

   public static String[] a(Validation var0, Worksheet var1) {
      byte var2 = 0;
      byte var3 = 0;
      int[] var4 = new int[]{var2};
      int[] var5 = new int[]{var3};
      var0.a(var4, var5);
      int var10 = var4[0];
      int var11 = var5[0];
      zavy var6 = new zavy(var1.c());
      int var7 = var0.getAreaList().size();
      if (var7 == 0) {
         return null;
      } else {
         String[] var8 = new String[2];
         byte[] var9;
         if (var0.d() != null) {
            var9 = (byte[])var0.d();
            var8[0] = var6.a(0, var9, var10, var11, true);
         }

         if (var0.e() != null) {
            var9 = (byte[])var0.e();
            var8[1] = var6.a(0, var9, var10, var11, true);
         }

         return var8;
      }
   }

   public static String a(String var0, int var1, int var2) {
      if (var0.startsWith("=#")) {
         if (var0.startsWith("=#NULL!")) {
            return "=#NULL!";
         }

         if (var0.startsWith("=#DIV/0!")) {
            return "=#DIV/0!";
         }

         if (var0.startsWith("=#VALUE!")) {
            return "=#VALUE!";
         }

         if (var0.startsWith("=#REF!")) {
            return "=#REF!";
         }

         if (var0.startsWith("=#NAME?")) {
            return "=#NAME?";
         }

         if (var0.startsWith("=#NUM!")) {
            return "=#NUM!";
         }

         if (var0.startsWith("=#N/A")) {
            return "=#N/A";
         }
      }

      StringBuilder var3 = new StringBuilder();
      int var4 = 0;
      int var5 = -1;

      int var6;
      for(var6 = 0; var6 < var0.length(); ++var6) {
         char var7 = var0.charAt(var6);
         if (var7 == '"') {
            ++var6;

            while(var6 < var0.length() && var0.charAt(var6) != '"') {
               ++var6;
            }
         } else if (Character.isDigit(var7)) {
            boolean var8 = false;
            int var9 = var4;
            int var10 = var0.length() - 1;

            int var11;
            for(var11 = var6 + 1; var11 < var0.length(); ++var11) {
               char var12 = var0.charAt(var11);
               if (!Character.isDigit(var12)) {
                  if (var12 == '!') {
                     var8 = true;
                  }

                  var10 = var11 - 1;
                  break;
               }
            }

            if (var8) {
               var3.append(var0, var4, var4 + var10 - var4 + 2);
               var4 = var10 + 2;
               var6 = var10 + 1;
               var5 = var6;
               var8 = false;
            } else {
               for(var11 = var6 - 1; var11 >= 0 && (com.aspose.cells.b.a.zm.a(var0, var11) || var0.charAt(var11) == '$'); var9 = var11--) {
                  ;
               }

               if (var9 != var4) {
                  a(var3, var0, var4, var9 - 1);
               }

               if ((var9 <= 0 || var0.charAt(var9 - 1) != '_') && (var10 >= var0.length() - 1 || var0.charAt(var10 + 1) != '_')) {
                  a(var3, var0, var9, var10, var1, var2);
               } else {
                  var3.append(var0, var9, var9 + var10 - var9 + 1);
               }

               var6 = var10;
               var4 = var10 + 1;
               var5 = var10;
            }
         }
      }

      var6 = var0.length();
      if (var5 != var0.length() - 1) {
         a(var3, var0, var5 + 1, var0.length() - 1);
      }

      return com.aspose.cells.b.a.zr.a(var3);
   }

   private static void a(StringBuilder var0, String var1, int var2, int var3) {
      for(int var4 = var2; var4 <= var3; ++var4) {
         if (var1.charAt(var4) == '$' && var4 != var3 && Character.isLetter(var1.charAt(var4 + 1))) {
            int var5 = var3;

            int var6;
            for(var6 = var4 + 2; var6 <= var3; ++var6) {
               if (!Character.isLetter(var1.charAt(var6))) {
                  var5 = var6 - 1;
                  break;
               }
            }

            var6 = c(var1, var4 + 1, var5);
            var0.append('C');
            var0.append(var6 + 1);
            var4 = var5;
         } else {
            var0.append(var1.charAt(var4));
         }
      }

   }

   private static void a(StringBuilder var0, String var1, int var2, int var3, int var4, int var5) {
      boolean var6 = false;
      boolean var7 = var1.charAt(var2) == '$';
      if (var7) {
         ++var2;
      }

      if (var7 && Character.isDigit(var1.charAt(var2))) {
         var0.append('R');
         var0.append(var1, var2, var2 + var3 - var2 + 1);
      } else if (!Character.isLetter(var1.charAt(var2))) {
         a(var0, var1, var2, var3);
      } else {
         int var8 = -1;
         int var9 = -1;

         int var10;
         for(var10 = var2 + 1; var10 <= var3; ++var10) {
            char var11 = var1.charAt(var10);
            if (Character.isDigit(var11)) {
               var8 = var10 - 1;
               var9 = var10;
               break;
            }

            if (var11 == '$') {
               var8 = var10 - 1;
               var6 = true;
               var9 = var10 + 1;
               break;
            }
         }

         if (var8 != -1 && var9 != -1 && var9 <= var3 && var8 - var2 < 3) {
            var0.append('R');
            var10 = com.aspose.cells.b.a.zo.a(var1.substring(var9, var9 + var3 - var9 + 1));
            if (!var6 && var4 != -1) {
               var0.append('[');
               var0.append(var10 - var4 - 1);
               var0.append(']');
            } else {
               var0.append(var10);
            }

            var0.append('C');
            int var12 = c(var1, var2, var8);
            if (!var7 && var5 != -1) {
               var0.append('[');
               var0.append(var12 - var5);
               var0.append(']');
            } else {
               var0.append(var12 + 1);
            }

         } else {
            a(var0, var1, var2, var3);
         }
      }
   }

   private static int c(String var0, int var1, int var2) {
      if (var0 != null && var1 <= var2 && var2 - var1 <= 1) {
         int var3 = var1;

         int var4;
         for(var4 = 0; var3 <= var2; ++var3) {
            char var5 = var0.charAt(var3);
            if (var5 >= 'A' && var5 <= 'Z') {
               var4 = var4 * 26 + var5 - 65 + 1;
            } else {
               if (var5 < 'a' || var5 > 'z') {
                  assert false : "Invalid column: " + var0.substring(var1, var1 + var2 - var1 + 1);

                  throw new IllegalStateException("Invalid column expression: " + var0);
               }

               var4 = var4 * 26 + var5 - 97 + 1;
            }
         }

         if (var4 > 0) {
            --var4;
         }

         return var4;
      } else {
         assert false : "Invalid column: " + var0.substring(var1, var1 + var2 - var1 + 1);

         throw new IllegalStateException("Invalid column expression: " + var0);
      }
   }

   public static String b(String var0, int var1, int var2) {
      StringBuilder var3 = new StringBuilder();
      int var4 = 0;
      int var5 = -1;

      label144:
      for(int var6 = 0; var6 < var0.length(); ++var6) {
         char var7 = var0.charAt(var6);
         boolean var9;
         switch(var7) {
         case '"':
            ++var6;

            while(true) {
               if (var6 >= var0.length()) {
                  continue label144;
               }

               var7 = var0.charAt(var6);
               if (var7 == '"') {
                  if (var6 + 1 >= var0.length() || var0.charAt(var6 + 1) != '"') {
                     continue label144;
                  }

                  ++var6;
               }

               ++var6;
            }
         case '\'':
            ++var6;

            while(true) {
               if (var6 >= var0.length()) {
                  continue label144;
               }

               var7 = var0.charAt(var6);
               if (var7 == '\'') {
                  if (var6 + 1 >= var0.length() || var0.charAt(var6 + 1) != '\'') {
                     continue label144;
                  }

                  ++var6;
               }

               ++var6;
            }
         case 'C':
         case 'c':
            if (var6 > 0 && Character.isLetter(var0.charAt(var6 - 1))) {
               break;
            }

            int[] var12;
            if (var6 + 1 < var0.length() && (Character.isDigit(var0.charAt(var6 + 1)) || var0.charAt(var6 + 1) == '[')) {
               var12 = new int[]{var6};
               var9 = a(var3, var0, var4, var12, var1, var2);
               var6 = var12[0];
               if (var9) {
                  var4 = var6 + 1;
                  var5 = var6;
               }
            } else if (var6 + 2 < var0.length() && var0.charAt(var6 + 1) == ':' && var0.charAt(var6 + 2) == 'C') {
               var12 = new int[]{var6};
               var9 = a(var3, var0, var4, var12, var1, var2);
               var6 = var12[0];
               if (var9) {
                  var4 = var6 + 1;
                  var5 = var6;
               }
            }
            break;
         case 'R':
         case 'r':
            if (var6 > 0) {
               if (Character.isLetter(var0.charAt(var6 - 1))) {
                  continue;
               }

               switch(var0.charAt(var6 - 1)) {
               case '_':
                  continue;
               }
            }

            if (var6 + 1 >= var0.length() || !Character.isLetter(var0.charAt(var6 + 1)) || var0.charAt(var6 + 1) == 'C' || var0.charAt(var6 + 1) == 'c') {
               if (var6 != var4) {
                  var3.append(var0, var4, var4 + (var6 - var4));
               }

               int var8 = var0.length() - 1;
               var9 = false;

               for(int var10 = var6 + 1; var10 < var0.length(); ++var10) {
                  char var11 = var0.charAt(var10);
                  if (var11 == '[') {
                     var9 = true;
                  } else if (var11 == ']') {
                     var9 = false;
                  } else if (!var9 && !Character.isLetterOrDigit(var11) && var11 != '[' && var11 != ']') {
                     var8 = var10 - 1;
                     break;
                  }
               }

               if (var9) {
                  d(var0, var1, var2);
               }

               int[] var13 = new int[]{var8};
               b(var3, var0, var6, var13, var1, var2);
               var8 = var13[0];
               var6 = var8;
               var4 = var8 + 1;
               var5 = var8;
            }
         }
      }

      if (var5 != var0.length() - 1) {
         var3.append(var0, var5 + 1, var5 + 1 + (var0.length() - var5 - 1));
      }

      return com.aspose.cells.b.a.zr.a(var3);
   }

   private static boolean a(StringBuilder var0, String var1, int var2, int[] var3, int var4, int var5) {
      boolean var6 = false;
      boolean var7 = false;
      int var8 = var1.length() - 1;
      int var9 = var1.length() - 1;
      boolean var10 = false;

      for(int var11 = var3[0] + 1; var11 < var1.length(); ++var11) {
         char var12 = var1.charAt(var11);
         if (var12 == '[') {
            var6 = true;
            var10 = true;
         } else if (var12 == ']') {
            var6 = false;
         } else if (!var6) {
            if (var12 == ':' && var11 + 1 < var1.length() && (var1.charAt(var11 + 1) == 'C' || var1.charAt(var11 + 1) == 'c')) {
               var8 = var11 - 1;
               ++var11;
               var7 = true;
            } else if (!Character.isDigit(var12) && var12 != '[' && var12 != ']') {
               var9 = var11 - 1;
               if (!var7) {
                  var8 = var11 - 1;
               }
               break;
            }
         }
      }

      if (!var10 && !var7 && var8 + 1 < var1.length()) {
         switch(var1.charAt(var8 + 1)) {
         case '.':
            return false;
         }
      }

      if (var2 != var3[0]) {
         var0.append(var1, var2, var2 + (var3[0] - var2));
      }

      boolean var18 = var7 ? true : true;
      boolean var19 = true;
      int var13 = 0;

      for(int var14 = 0; var14 < 2; ++var14) {
         var19 = true;
         if (var14 == 1) {
            var0.append(':');
            if (!var7) {
               a(var0, var13);
               break;
            }

            var3[0] = var8 + 2;
            var8 = var9;
         }

         int var15 = var3[0];
         if (var15 != var8 && var1.charAt(var15 + 1) == '[') {
            var19 = false;
         }

         try {
            if (!var19 && var5 != -1) {
               var13 = var5 + com.aspose.cells.b.a.zo.a(var1.substring(var15 + 2, var15 + 2 + (var8 - var15 - 2)));
               if (var13 > 16383 || var13 < 0) {
                  d(var1, var4, var5);
               }

               a(var0, var13);
            } else if (var15 == var8) {
               if (var5 == -1) {
                  var0.append('A');
               } else {
                  a(var0, var5);
               }
            } else {
               var0.append('$');
               if (var19) {
                  var13 = com.aspose.cells.b.a.zo.a(var1.substring(var15 + 1, var15 + 1 + (var8 - var15))) - 1;
               } else {
                  var13 = com.aspose.cells.b.a.zo.a(var1.substring(var15 + 2, var15 + 2 + (var8 - var15 - 2))) - 1;
               }

               if (var13 > 16383 || var13 < 0) {
                  d(var1, var4, var5);
               }

               a(var0, var13);
            }
         } catch (Exception var17) {
            d(var1, var4, var5);
         }
      }

      var3[0] = var9;
      return true;
   }

   private static void b(StringBuilder var0, String var1, int var2, int[] var3, int var4, int var5) {
      boolean var6 = true;
      boolean var7 = true;
      int var8 = -1;

      int var9;
      for(var9 = var2; var9 <= var3[0]; ++var9) {
         if (var1.charAt(var9) == 'C' || var1.charAt(var9) == 'c') {
            var8 = var9;
            break;
         }
      }

      var9 = var2;
      int var10;
      if (var8 == -1) {
         if (var3[0] + 1 != var1.length() && var1.charAt(var3[0] + 1) == ':') {
            for(var10 = 0; var10 < 2; ++var10) {
               if (var10 == 1) {
                  var0.append(':');
                  var9 = var3[0] + 2;
                  boolean var11 = false;

                  for(int var12 = var9 + 1; var12 < var1.length(); ++var12) {
                     char var13 = var1.charAt(var12);
                     if (var13 == '[') {
                        var11 = true;
                     } else if (var13 == ']') {
                        var11 = false;
                     } else if (!var11 && !Character.isDigit(var13) && var13 != '[' && var13 != ']') {
                        var3[0] = var12 - 1;
                        break;
                     }
                  }

                  if (var9 > var3[0]) {
                     var3[0] = var1.length() - 1;
                  }
               }

               if (var1.charAt(var9 + 1) == '[' || var1.charAt(var9 + 1) == ':') {
                  var6 = false;
               }

               int var15;
               if (!var6 && var4 != -1) {
                  var15 = var4 + 1;
                  if (var3[0] > var9 + 2) {
                     var15 += com.aspose.cells.b.a.zo.a(var1.substring(var9 + 2, var9 + 2 + (var3[0] - var9 - 2)));
                  }

                  if (var15 > 1048575 || var15 < 1) {
                     d(var1, var4, var5);
                  }

                  var0.append(var15);
               } else {
                  var0.append('$');
                  var15 = 0;
                  if (var3[0] > var9) {
                     var15 = com.aspose.cells.b.a.zo.a(var1.substring(var9 + 1, var9 + 1 + (var3[0] - var9)));
                  }

                  if (var15 > 1048575 || var15 < 1) {
                     d(var1, var4, var5);
                  }

                  var0.append(var15);
               }
            }
         } else {
            if (var1.charAt(var2 + 1) == '[' || var2 == var3[0]) {
               var6 = false;
            }

            var10 = 0;
            if (!var6 && var4 != -1) {
               var10 = var4 + 1;
               if (var3[0] > var2 + 2) {
                  var10 += com.aspose.cells.b.a.zo.a(var1.substring(var2 + 2, var2 + 2 + (var3[0] - var2 - 2)));
               }

               if (var10 > 1048575 || var10 < 1) {
                  d(var1, var4, var5);
               }

               var0.append(var10);
            } else {
               var0.append('$');
               if (var3[0] > var2) {
                  var10 = com.aspose.cells.b.a.zo.a(var1.substring(var2 + 1, var2 + 1 + (var3[0] - var2)));
               }

               if (var10 > 1048575 || var10 < 1) {
                  d(var1, var4, var5);
               }

               var0.append(var10);
            }

            var0.append(':');
            if (var6 || var4 == -1) {
               var0.append('$');
            }

            var0.append(var10);
         }

      } else {
         if (var1.charAt(var2 + 1) == '[') {
            var6 = false;
         }

         if (var8 != var3[0] && var1.charAt(var8 + 1) == '[') {
            var7 = false;
         }

         try {
            if (var7) {
               if (var8 == var3[0]) {
                  if (var5 == -1) {
                     var0.append('A');
                  } else {
                     a(var0, var5);
                  }
               } else {
                  var0.append('$');
                  var10 = com.aspose.cells.b.a.zo.a(var1.substring(var8 + 1, var8 + 1 + (var3[0] - var8))) - 1;
                  if (var10 > 16383 || var10 < 0) {
                     d(var1, var4, var5);
                  }

                  a(var0, var10);
               }
            } else {
               var10 = var5 + com.aspose.cells.b.a.zo.a(var1.substring(var8 + 2, var8 + 2 + (var3[0] - var8 - 2)));
               if (var10 > 16383 || var10 < 0) {
                  d(var1, var4, var5);
               }

               a(var0, var10);
            }

            if (var6) {
               if (var9 + 1 == var8) {
                  if (var4 == -1) {
                     var0.append('1');
                  } else {
                     var0.append(var4 + 1);
                  }
               } else {
                  var0.append('$');
                  var10 = com.aspose.cells.b.a.zo.a(var1.substring(var9 + 1, var9 + 1 + (var8 - var9 - 1)));
                  if (var10 > 1048575 || var10 < 1) {
                     d(var1, var4, var5);
                  }

                  var0.append(var10);
               }
            } else {
               var10 = var4 + com.aspose.cells.b.a.zo.a(var1.substring(var9 + 2, var9 + 2 + (var8 - var9 - 3))) + 1;
               if (var10 > 1048575 || var10 < 1) {
                  d(var1, var4, var5);
               }

               var0.append(var10);
            }
         } catch (Exception var14) {
            d(var1, var4, var5);
         }

      }
   }

   private static void a(StringBuilder var0, int var1) {
      var0.append(CellsHelper.columnIndexToName(var1));
   }

   private static void d(String var0, int var1, int var2) {
      throw new CellsException(5, "Invalid formula in cell " + CellsHelper.cellIndexToName(var1, var2) + ": " + var0);
   }

   public static boolean b(String var0) {
      return var0 == null || var0.length() == 0;
   }
}
